package com.gupao.singleton;

/**
 * @Description: //TODO:作为获取获取日志工厂类的唯一单列方法，采用老师 说的内部类的方式获取单列，懒加载，内部内
 * @ClassName: LoggerFactorySingleton
 * @Author: msx
 * @CreateDate: 2018/3/23 11:44
 * //懒汉式单例
//特点：在外部类被调用的时候内部类才会被加载
//内部类一定是要在方法调用之前初始化
//巧妙地避免了线程安全问题

//这种形式兼顾饿汉式的内存浪费，也兼顾synchronized性能问题
//完美地屏蔽了这两个缺点
//史上最牛B的单例模式的实现方式
 */
public class LoggerFactorySingleton {


    //每一个关键字都不是多余的
    //static 是为了使单例的空间共享
    //保证这个方法不会被重写，重载
    public static final LoggerFactory getLoggerFactoryInstance(){
        return InnerLoggerFactory.loggerFactory;
    }


    //默认不加载
    private  static class  InnerLoggerFactory{
        private static final LoggerFactory loggerFactory = new LoggerFactory();
    }
}
